package com.example.question.tree.tree3;

import com.example.question.tree.tree1.TreeNode;

/**
 * 230. 二叉搜索树中第K小的元素
 * 对于二叉搜索树，中序遍历就是升序的
 */
public class Code17_230 {

    public int kthSmallest(TreeNode root, int k) {
        this.k = k;
        dfs(root);
        return kthSmall;
    }

    int kthSmall;
    int k;

    private void dfs(TreeNode node) {
        if (node == null) {
            return;
        }
        dfs(node.left);
        if (1 == k) {
            kthSmall = node.val;
        }
        k--;
        dfs(node.right);
    }
}
